package cn.rulian.base.curd.vo;

import java.util.List;
import java.util.Map;

import cn.rulian.base.curd.bo.Curd;
import cn.rulian.base.curd.bo.CurdField;
import lombok.Getter;
import lombok.Setter;

/**
 * Curd元数据
 */
@Getter
@Setter
public class CurdMeta {
	
	private Curd curd;	//主配置
	private List<CurdField> allFields; //所有属性（创建DTO时使用，新加）
	private List<CurdField> queryFields; //查询条件
	private List<CurdField> listFields; //列表
	private List<CurdField> sumFields; //需要求和的属性列表
	private List<CurdField> addFields; //增加页面
	private List<CurdField> updateFields; //编辑页面
	private List<CurdField> detailFields; //详情页面

	//因为一行<tr>显示两个<td>问题，所以重新包装数据。
	private List<List<CurdField>> addFields2; //增加页面（双层数据列表）
	private List<List<CurdField>> updateFields2; //编辑页面（双层数据列表）
	private List<List<CurdField>> detailFields2; //详情页面（双层数据列表）
	
	private Map<String,String> map; //其他辅助生成代码的值
	
	//以下三个属性，因增加、编辑共用一个模板，所以在生成不同页面时，赋上不同的值。
	private String type; //类型，主要用于区分生成增加页面和编辑页面，两个页面用的是一个模板，所以需要区分
	private List<CurdField> tempFields; //临时中转（用于增加、编辑页面），值来源：addFields 或 updateFields
	private List<List<CurdField>> tempFields2; //临时中转（用于增加、编辑页面），值来源：addFields2 或 updateFields2
	
	private String temp; //临时标识,用于区分测试代码和正式代码
	
}
